<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>websocket通讯</title>
</head>

<body>
<p>【userId】：<div><input id="userId" name="userId" type="text" value="10"></div>
<p>【toUserId】：<div><input id="toUserId" name="toUserId" type="text" value="20"></div>
<p>【toUserId】：<div><input id="contentText" name="contentText" type="text" value="hello websocket"></div>
<p><div id="imgsrc"></div></p>
<p>【操作】：<div><a onclick="openSocket()">开启socket</a></div>
<p>【操作】：<div><a onclick="sendMessage('text')">发送消息</a></div>
<input type="file" name="photo" id="photo" value="" placeholder="免冠照片">
<input type="button" onclick="postData()" value="下一步" name="" style="width:100px;height:30px;">

<h4>消息列表:</h4>
<ul id="messagelist">
</ul>


</body>

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
    var socket;
    function openSocket() {
        if(typeof(WebSocket) == "undefined") {
            console.log("您的浏览器不支持WebSocket");
        }else{
            console.log("您的浏览器支持WebSocket");
            //实现化WebSocket对象，指定要连接的服务器地址与端口  建立连接
            //等同于socket = new WebSocket("ws://localhost:8888/xxxx/im/25");
            //var socketUrl="${request.contextPath}/im/"+$("#userId").val();
            var socketUrl="http://localhost:8085/imserver/"+$("#userId").val();
            socketUrl=socketUrl.replace("https","ws").replace("http","ws");
            console.log(socketUrl);
            if(socket!=null){
                socket.close();
                socket=null;
            }
            socket = new WebSocket(socketUrl);
            //打开事件
            socket.onopen = function() {
                console.log("websocket已打开");
                //socket.send("这是来自客户端的消息" + location.href + new Date());
            };
            //获得消息事件
            socket.onmessage = function(msg) {
				console.log(msg.data);
				var res=JSON.parse(msg.data);
				if(res.type==0){
					$("#messagelist").append("<li>"+":  "+res.content+"</li>");
				}
				if(res.type==1){
					$("#messagelist").append("<li>"+": <img src='"+res.content+"' alt='' /></li>");
				}
            };
            //关闭事件
            socket.onclose = function() {
                console.log("websocket已关闭");
            };
            //发生了错误事件
            socket.onerror = function() {
                console.log("websocket发生了错误");
            }
        }
    }
    function sendMessage(messageType) {
        if(typeof(WebSocket) == "undefined") {
            console.log("您的浏览器不支持WebSocket");
        }else {
            console.log("您的浏览器支持WebSocket");
			var msg=new Object();
			msg.friendId=$("#toUserId").val();
			msg.userId=$("#userId").val();
			msg.content=$("#contentText").val();
			msg.type=messageType;
			var sendStr=JSON.stringify(msg);
            console.log(sendStr);
            socket.send(sendStr);
        }
    }
	
	function postData(){
		var formData = new FormData();
		formData.append("file",$("#photo")[0].files[0]);
		$.ajax({
			url:'http://localhost:8085/minio/upload', /*接口域名地址*/
			type:'post',
			data: formData,
			contentType: false,
			processData: false,
			success:function(res){
				console.log(res.data);
				$("#contentText").val(res.data.url);
				$("#imgsrc").html("<img src='"+res.data.url+"'/>")
				sendMessage('image');
			}
		})
}

	
</script>

</html>